package com.eportal.service;

import com.eportal.domain.Sysopt;
import com.eportal.domain.TAgent;
import com.eportal.vo.controller.background.tagent.ReportVO;
import com.eportal.vo.controller.background.tagent.TAgentSelectListVO;
import com.framework.jqgrid.JqGridPager;

import java.io.File;
import java.util.List;
import java.util.Map;


public interface TAgentService {

    List<TAgent> list(JqGridPager jqGridPager);

    TAgent get(Long id);

    TAgent get(String agtCode);

    void delete(Long id);

    void update(TAgent tAgent) throws Exception;

    void delete(List<Long> ids);

    TAgent add(TAgent tAgent) throws Exception;

	Map<String, Object> addMethod(TAgent tAgent,Sysopt user);

	Map<String, Object> updateMethod(TAgent tAgent);

	Map<String, Object> deleteMethod(String param_ids);

	List<TAgent> list(String sql);

	Map<String, Object> tagentAddMethod(TAgent tAgent, File file, String fileName);

	Map<String, Object> auditMethod(String sid, String status, String comm, String sysoptId,Sysopt user) throws Exception;

	List<Map<String, String>> getDeatil(String where);

	List<TAgent> auditList(JqGridPager page);

	Map<String, String> getPlatAppKey(String agtCode);

	Map<String, Object> tagentDetailMethod(TAgent tAgent, File file, String fileName);

	/**
	 * 平台数据统计
	 * @param userRole
	 * @param user
	 * @see TAgentService#getPmsReports(Sysopt, int)  mybatis版
	 * @return
	 */
	List<Map<String, String>> getPmsReports(int userRole, Sysopt user);

	/**
	 * 合作方数据统计
	 * @param agtCoe
	 * @see TAgentService#tagentReports2(String)		mybaits版
	 * @return
	 */
	List<Map<String, String>> tagentReports(String agtCoe);

	String esql(String cname,String ctime,String tableName,String where);

	String esql2(String string);

	/**
	 * 社区统计数据
	 * @param agtCode
	 * @param tCommunityId
	 * @see TAgentService#tcomuReports2(String, String) mybatis版
	 * @return
	 */
	List<Map<String, String>> tcomuReports(String agtCode,String tCommunityId);

	Map<String, Object> updateRegionManagerMethod(TAgent tAgent);


//todo -----------------------------------------------------------------------------------------

	/**
	 * 合作方列表（下拉）
	 * @author Saber
	 * @Date 2017/8/2 下午1:01
	 * @param user			当前用户
	 * @param userRole		当前用户userRole
	 * @return
	 */
	List<TAgentSelectListVO> selectList(Sysopt user, int userRole);

	/**
	 * 平台数据统计
	 * @author Saber
	 * @Date 2017/8/22 上午10:04
	 * @param user			当前用户
	 * @param userRole		当前用户userRole
	 * @see TAgentService#getPmsReports(int, Sysopt)
	 * @return
	 */
	List<ReportVO> getPmsReports(Sysopt user,int userRole);

	/**
	 * 合作方数据统计
	 * @author Saber
	 * @Date 2017/8/22 上午11:04
	 * @param agtCode 	合作方code
	 * @see TAgentService#tagentReports(String)
	 * @return
	 */
	List<ReportVO> tagentReports2(String agtCode);

	/**
	 * 社区统计数据
	 * @author Saber
	 * @Date 2017/8/22 上午11:48
	 * @param agtCode		合作方code
	 * @param communityId	小区id
	 * @see  TAgentService#tcomuReports(String, String)
	 * @return
	 */
	List<ReportVO> tcomuReports2(String agtCode, String communityId);
}
